import { inherits as inherits$0 } from "util";
import DERDecoder from "./der";
'use strict';
const inherits = { inherits: inherits$0 }.inherits;
function PEMDecoder(entity) {
    DERDecoder.call(this, entity);
    this.enc = 'pem';
}
inherits(PEMDecoder, DERDecoder);
PEMDecoder.prototype.decode = function decode(data, options) {
    const lines = data.toString().split(/[\r\n]+/g);
    const label = options.label.toUpperCase();
    const re = /^-----(BEGIN|END) ([^-]+)-----$/;
    let start = -1;
    let end = -1;
    for (let i = 0; i < lines.length; i++) {
        const match = lines[i].match(re);
        if (match === null)
            continue;
        if (match[2] !== label)
            continue;
        if (start === -1) {
            if (match[1] !== 'BEGIN')
                break;
            start = i;
        }
        else {
            if (match[1] !== 'END')
                break;
            end = i;
            break;
        }
    }
    if (start === -1 || end === -1)
        throw new Error('PEM section not found for: ' + label);
    const base64 = lines.slice(start + 1, end).join('');
    // Remove excessive symbols
    base64.replace(/[^a-z0-9+/=]+/gi, '');
    const input = Buffer.from(base64, 'base64');
    return DERDecoder.prototype.decode.call(this, input, options);
};
export default PEMDecoder;
